This invention relates generally to the field of machine translation of natural language expression and more particularly to a novel method and apparatus for computer translation between a natural language and a second language
The generation and dissemination of information and knowledge continues to grow in importance in both social and economic terms. The vast majority of this information and knowledge is expressed in natural languages such as English, and much of the task of gathering, manipulating, and acting on and disseminating information can be greatly aided by computers. Since natural language capability can enable computers to interact with users in their ordinary language it can make computer power available to segments of the population that are unwilling or unable to learn a formal computer language In addition, a natural language interface to computers can increase knowledge productivity by providing a mechanized means for manipulating knowledge as now expressed in natural language as well as aiding in the translation from one language into another.
A number of approaches to methods for machine translation of a natural language have been proposed in the prior art. Translators used for simple lateral translation of the words of one language (e.g., English) into another language (e.g., French) have been known for some time. These translators are essentially stored dictionaries with means for word entry and processor means for dictionary-type (i.e., alphabetical order) look-up.
Other systems have been developed to translate simple sentences which are commonly used and manipulated as a whole (e.g., "How are you?", etc.) from one natural language to another. This type of translator is essentially the same as the word translator in that pairs of the frequently used sentences of one language and corresponding sentences in a second language are stored in memory and then the sentence required is displayed as selected. Translators of this type are commercially available for travelers in a foreign country using stored phrases and sentences classified into sections such as "in plane", "at restaurant", "at customs", and so forth, in accordance with situations which the traveler will encounter. In use, the traveler first selects the section which he desires to confer with by operating associated keys. Next, upon actuation of a search key, sentences which are frequently used in a situation corresponding to the selected key are sequentially displayed one after another. When a sentence of interest which the traveler wants to use is displayed, the translation key is operated, whereupon a translated sentence corresponding to the selected sentence is displayed. In order to make it possible to translate a great variety of sentences, however, not only a memory of enormously great capacity is required, but also the procedures for selecting a sentence to be translated become very complicated.
More advanced systems have been proposed using techniques such as parsing or grammatical Patterns to translate more complex sentences from one language to another but still using an alphabetical order-type lookup. In this type of translation system a natural language text, such as English, is inputed to the translator apparatus and translated into a sentence of a second language through processes of parsing and retrieval of corresponding or target word by sorting to the dictionary access. A translating apparatus of this type can not deal with ambiguities and inconsistencies due to inherent parsing strategy. These translators also require a high-speed computer of a large scale with large memory and involving great expense. In addition, none of these systems learn or change based upon knowledge obtained from use nor do they have the capability of asking the user questions relating to the context of user expressions.
Another application for natural language translation is as a human/computer interface. Computer systems or robots utilize software for system control functions and interaction with the user and their environment (e.g., operating systems such as MS-DOS sold by Microsoft Corp. for use in a microcomputer environment or a variety of control programs used in robotics) and applications software (e.g., database management systems, free formatted text retrieval systems and expert systems) which have their own command languages. These languages are frequently difficult and cumbersome to use and therefore they restrict access to the computer's power to experienced users. Thus, memory resident natural language interfaces for computer operating systems, application software, expert systems, robots and numerical machines are highly desireable.
In the prior art, such interface systems have utilized dictionary look-up approaches as described above, which use up large amounts of memory and processor time, and therefore are not suitable for use in microcomputer systems. Further they can not provide the illusion that the user is communicating through an expert assistant knowledgeable about the computing environment using an intelligent natural language based dialogue. Other prior art systems use table look-up schemes in which language patterns are stored in a transposition pattern table. Such systems are limited to the individual patterns stored and do not provide for learning or inductive capabilities. However, a natural language interface for operating systems is a complex system which must respond to user requests presented as partial concepts from which machine commands are derived (i.e., a concept driven system).
All the prior art systems fail to consider that for effective use of computer software systems and control programs advise and requests can not be interpreted or granted by the system blindly. An intelligent natural language interface must be able to deal with a variety of situations such as lexical ambiguity, intentions, ellipses, discourse structures, vagueness and figures of speech which require pragmatic knowledge of the operating environment. Thus, it is desireable for the systems to be capable of taking into consideration the previous state, present state and future state of the machine to interpret the user request by assembling a system which provides expert advice and assistance to the user. It is further desirable for the system to accept the user requests in the form of conceptual advice and then direct or activate certain heuristics to guide the translation process.
It is accordingly an object of the present invention to provide novel natural language translation apparatus which minimizes memory and processor usage thereby maximizing response speed.
It is yet another object of the present invention to provide a novel memory resident natural language interface for operating systems, job control languages, robot control languages, numerical control machine program language or other natural language suitable for use even in computers with limited resources such as microcomputers and other microprocessor based systems.
It is yet another object of the invention to provide a novel natural language translation apparatus utilizing cryptanalysis techniques, artificial intelligence, and machine learning to provide high speed translation between a natural language and a second language.
It is yet another object of the invention to provide a novel adaptive learning system that can be trained by the user to deal with pragmatic situations unique to their operating environment.
It is yet another object of the invention to provide an efficient system with a microprogrammable architecture for an adaptive natural language processor capable of modifying its parameters and control mechanism to adapt to future changes or modifications made to the command set of operating environment.
It is yet another object of the present invention to provide a user definable interactive natural language dialogue system for interfacing to command sets of application programs as an alternative to currently available menu driven interface systems.
It is yet another object of the invention to provide a novel knowledge acquisition system which converts user supplied information into internal Extended-Microinstructions, consequently resulting in modification of the learning model.
It is yet another object of the invention to provide a novel English language shell utilizing letter matching based upon frequency of use in the English language and learning based upon actual usage distribution.
It is yet another object of the invention to provide a novel natural language interface with learning and inference capabilities to assist users in utilizing complex operating system commands described incompletely in the user's natural language.
It is yet another object of the invention to provide a natural language interface capable of utilizing parallel processing with minor modifications.
It is yet another object of the invention to provide a natural language operating system interface which can interrogate the system hardware and configure itself for the specific hardware system and operating environment found.
Briefly, according to one embodiment of the invention, processing apparatus is provided for performing translation between a predetermined natural language and a second language, such as a computer operating system command language. The processing apparatus comprises input means for input of messages in said predetermined natural language, and processing means using techniques such as artificial intelligence and inference mechanisms, for mapping words of said natural language requests to corresponding words of said second language based upon cryptographic techniques including use of frequency distribution of classes or words and letters of said predetermined natural language to allocate, store and retrieve information. Means are also provided for generating a message in said second language utilizing the retrieved information.
In alternative embodiments, the invention includes a high speed cryptographic filter which determines a cryptosignature of input tokens for efficient pattern matching and access to a virtual memory system. In addition, in another embodiment, an adaptive learning interface permits user configuration and enables modification of internal structure, heuristics and knowledge base.